#pragma once

#include <memory>
#include "TrueText/Types.h"
#include <boost/smart_ptr/shared_ptr.hpp>

namespace TrueText {

struct TextLayout;
class BitmapBuffer;
class BitmapLayer;

class Drawer
{
public:
	virtual ~Drawer() { };
	virtual Rectangle GetBounds(const TextLayout& layout) = 0;
	virtual boost::shared_ptr<BitmapLayer> Draw(const TextLayout& layout) = 0;
};

}